Storage systems have been used for accumulating and utilizing data. A typical storage system includes a plurality of storage devices and a storage control apparatus that controls access to data stored in the plurality of storage devices. Such storage systems may use the RAID (Redundant Arrays of Independent Disks) technology. Some RAID configurations distribute sequential segments of data over a plurality of storage devices. This method is called “striping”. With the aid of striping, the access load is distributed across a plurality of storage devices, thus realizing high speed access.
In the striping, the storage region of storage devices is divided into segments of a predetermined size. Each of these segments is called a “strip”. The size of a strip is called “strip size” or “stripe depth”. One logical storage region called a “stripe” is formed by combining several divided storage areas (strips) on different storage devices. For example, in the case of RAID level 0, the storage capacity of one stripe is the product of the strip size and the number of storage devices providing storage areas to the stripe. It is also possible to form a logical storage region by combining a plurality of such stripes.
The use of striping, however, does not always promise the efficiency of access to data. For example, the striping may foe unable to exert the effect of parallel processing when multiple concurrent access operations occur to data having a relatively large size (e.g., size equal to or greater than the storage capacity of one stripe). Another similar situation is when access to relatively small data concentrates on a particular storage device. In this case, the striping may be unable to sufficiently distribute the access load over a plurality of storage devices, because of the reduced chance of parallel processing.
The efficiency of data access may be improved by adjusting the strip size. For example, there is a proposal for counting access operations for each supported strip size, based on access logs. Access habits are grasped by analyzing the frequency of occurrences of each requested access size, and the strip size may be changed depending on the grasped access habits.
There is also another proposal for monitoring write commands or read commands and changing the strip size of array data when data having a specific size exceeds a defined percentage.
There is yet another proposal for analyzing the presence of boundary displacement (displacement of the write-start position of data in a cache memory on a storage device) or the amount of boundary displacement based on access information from a host apparatus. Furthermore, there is still another proposal for collecting configuration information about storage devices from the storage devices during the period when the load on the storage system is low. See, for example, the following patent literatures:
Japanese Laid-Open Patent Publication No. 11-154057;
Japanese Laid-Open Patent Publication No. 8-129461;
Japanese Laid-Open Patent Publication No. 2008-269015; and
Japanese Laid-Open Patent Publication No. 2006-134021.
A plurality of logical storage regions (also called “logical regions”) may be created for various applications, with the striping as part of the underlying physical structure. Some application programs may produce frequent random access to logical regions. For example, database applications are among the programs of this nature. The current strip size may, however, not always be optimal in terms of the efficiency of such frequent random access. Thus, it is important how to determine an efficient strip size for those random access regions.
For example, random access may be made to data having a relatively small size. The performance of this type of random access is significantly influenced by the time consumed in physically searching a storage area of each storage device. Thus, if the accessed part of a logical region ranges across a plurality of storage devices, these storage devices have to seek the specified storage area, and the resulting overhead could lead to deterioration of access performance. For this reason, the striping does not exert its full performance when, for example, it is configured with a small strip size relative to the random access size.